New collaboration models have been developed which operate in a “peer-to-peer” fashion without the intervention of a central authority. One of these latter models is built upon direct connections between users in a shared private “space”. In accordance with this model, users can be invited into, enter and leave a shared space during an ongoing collaboration session between other users. Each user has an application program called an “activity”, which is operable in his or her personal computer system, communication appliance or other network-capable device which generates a shared “space” in that user's computer. The activity responds to user interactions within the shared space by generating data change requests, called “deltas.” The activity also has a data-change engine component that maintains a local data copy and performs the changes to the data requested by the deltas. The deltas are distributed from one user to another over a network, such as the Internet, by a dynamics manager component. When the deltas are received by another user activity in the shared space, the local data copy maintained by that activity is also updated.
Subprograms within the activity program called “tools” perform various specific tasks. For example, an activity program might present various computer games. Within the overall game activity, tools might be available for a chess game and a tic-tac-toe game. Tools are defined by a template that is a document written in Extended Markup Language or XML. The XML template has various sections or tagged blocks that define various attributes of the tool that it defines.
An application constructed in accordance with this model consists of a collection of software components and resources, all of which are targeted for execution on a particular device. As used herein the term “components” will be used to refer to both the software code and the resources that are required for an application. This type of collaboration system is described in detail in U.S. patent application Ser. No. 09/357,007 entitled METHOD AND APPARATUS FOR ACTIVITY-BASED COLLABORATION BY A COMPUTER SYSTEM EQUIPPED WITH A COMMUNICATIONS MANAGER, filed Jul. 19, 1999 by Raymond E. Ozzie, Kenneth G. Moore, Robert H. Myhill and Brian M. Lambert; U.S. patent application Ser. No. 09/356,930 entitled METHOD AND APPARATUS FOR ACTIVITY-BASED COLLABORATION BY A COMPUTER SYSTEM EQUIPPED WITH A DYNAMICS MANAGER, filed Jul. 19, 1999 by Raymond E. Ozzie and Jack E. Ozzie; U.S. patent application Ser. No. 09/356,148 entitled METHOD AND APPARATUS FOR PRIORITIZING DATA CHANGE REQUESTS AND MAINTAINING DATA CONSISTENCY IN A DISTRIBUTED COMPUTER SYSTEM EQUIPPED FOR ACTIVITY-BASED COLLABORATION, filed Jul. 19, 1999 by Raymond E. Ozzie and Jack E. Ozzie and U.S. patent application Ser. No. 09/588,195 entitled METHOD AND APPARATUS FOR EFFICIENT MANAGEMENT OF XML DOCUMENTS, filed Jun. 6, 2000 by Raymond E. Ozzie, Kenneth G. Moore, Ransom L. Richardson and Edward J. Fischer.
The aforementioned collaboration system has several specific advantages over centralized systems. These advantages include reduced centralized management resources, reduced server storage resources, and optimized computing resources. For example, in many systems, teams of co-workers share information in a shared space. In a system that can have many such co-worker teams, any number of which could be actively online at any given time, due to the resources consumed, administrators would have to police who could and could not create spaces. Similarly, the administrators would have to backup the shared spaces. Further, since most of the time no single member of a team assumes the responsibility of declaring the collaboration to be “over,” administrators would have to prod workers to delete their shared spaces.
However, in a peer-to-peer collaborative environment, each member of a coworker team makes use of his or her own local computing resources, without any worst-case capacity planning necessary. There is no need to have bandwidth, processing and storage enough to support the entire universe of users, only enough to support his or her own usage. In addition, when an individual user finds that stored assets no longer merit storage on a local machine, he or she can delete them without having to ask permission of the rest of the team. This eliminates the administrative burden of managing access to services, backing up resources that may be obsolete, and tracking down abusers of the system.
Further, peer-to-peer collaboration systems can also reduce storage resource requirements. For example, a common network inefficiency arises when a single e-mail is sent with a file attachment to multiple recipients and some recipients reply to other recipients with the file still attached. Not only does this operation unnecessarily tax the network, but most client/server messaging systems will store a replica of the message and its attachments on both the client and the server. Peer-to-peer file transfer can minimize network traffic by sending the file only to those recipients who need to obtain a copy thereby eliminating redundant storage.
Peer-to-peer collaboration systems also make direct use of local computing resources in business-to-business and business-to-consumer settings. For example, a person-to-person customer service application can move content directly to the personal desktops of customer support personnel as well as to the desktop of the customer, instead of to a corporate Web server, thereby effectively distributing the computing and network resources accordingly. Likewise, a cross-company team conducting business-to-business planning will connect directly with each other instead of meeting “at” a centralized Web site.
Even though peer-to-peer collaboration systems have some distinct advantages, in many cases, it is difficult to deploy, manage and monitor these systems, particularly in large organizations. Since central administration is not necessary to run these systems and, indeed, many systems affirmatively insure the privacy of the participants, it may be difficult for administrators to monitor usage of such systems in order to improve the services. Nevertheless, managers have a legitimate and necessary responsibility to track usage of enterprise computing resources, at least in the aggregate, to allow managers to determine application utility and to intelligently anticipate capacity planning requirements.
Further, since there is no central location with which all users must interact, there is also no central authority to enforce licensing restrictions or payment terms that may be imposed by some software developers on the transfer, or use, of software components that they developed. In addition, software components that incorporate other software components may require that licenses be obtained from several vendors, thereby making the licensing process complicated.
Thus, there is a need for monitoring system usage without violating the privacy of the individual users.
In addition, there is a need for a method and apparatus that can automatically enforce licensing restrictions without requiring that a user continuously collaborate with a central location.